
 /**
 * 文 件 名:  BaseDao.java
 * 版    权:  TianSi Company . Copyright YYYY-YYYY,  All rights reserved
 * 描    述:  <描述>
 * 修 改 人:  严华
 * 修改时间:  2012-11-20
 * <修改描述:>
 */
package com.yh.base.dao;

import java.util.List;
import java.util.Map;


 /**
  * <功能描述>
  * 专注于数据访问
  * <功能描述>
  * 
  * @author  严华
  * @version  [版本号, 2012-11-20]
  * @see  [相关类/方法]
  * @since  [产品/模块版本]
  */
public interface BaseDao {
    /**
     * 
      * <功能描述>
      * 公用新增方法
      * <功能描述>
      * 
      * @param sqlName 
      *     MyBatis 关联ID
      * @param param 
      *     入库数据
      * 
      * @return void 
     */
    public <K, V> void comAdd(String sqlName, Map<K, V> param);
    
    /**
     * 
      * <功能描述>
      * 公用删除方法
      * <功能描述>
      * 
      * @param sqlName 
      *     MyBatis 关联ID
      * @param param 
      *     删除条件参数
      * 
      * @return void
     */
    public <K, V> void comDel(String sqlName, Map<K, V> param);
    
    /**
     * 
      * <功能描述>
      * 公用删除方法
      * <功能描述>
      * @param sqlName 
      *     MyBatis 关联ID
      * @param param 
      *     变更参数
      * 
      * @return void
     */
    public <K, V> void comModify(String sqlName, Map<K, V> param);
    
    /**
     * 
      * <功能描述>
      * 公共查询单个对象，多数用于查询记录总数
      * <功能描述>
      * 
      * @param sqlName 
      *     MyBatis 关联ID
      * @param param 
      *     查询参数
      * 
      * @return T
      *     返回的对象
     */
    public <K, T, V> T comFindOne(String sqlName, Map<K, V> param);
    
    /**
     * 
      * <功能描述>
      * 查询数据列表
      * <功能描述>
      *
      * @param sqlName
      *     MyBatis 关联ID
      * @param param
      *     查询条件
      * 
      * @return List<T> 
      *     查询结果集
     */
    public <K, T, V> List<T> comFindList(String sqlName, Map<K, V> param);
}
